<?php

class MotoristaModel extends Model {
    
    const P_KEY = 'CPF';
    const T_NAME = 'Motorista';
    
    public static function GetByCPF($CPF){
        $Motorista = null;
        $Result = parent::getByKey(self::T_NAME, self::P_KEY, $CPF, true);
        if(!empty($Result)){
            $Motorista = self::CreateMotorista($Result);
        }
        return $Motorista;
    }
    
    private static function CreateMotorista($Result){
        $Motorista = new Motorista($Result['CPF']);
        $Motorista->setNome($Result['Nome']);
        $Motorista->setSalario($Result['Salario']);
        $Motorista->setDataDeNascimento($Result['DataDeNascimento']);
        $Motorista->setDataDeContratacao($Result['DataDeContratacao']);
        return $Motorista;
    }
    
    public static function GetByViagem($IDViagem){
        $Motoristas = array();
        $db = DB::getInstance();
        $StQuery = 'SELECT m.* FROM "Motorista" m JOIN "Dirige" d ON d."CPFMotorista" = m."CPF" WHERE d."IDViagem" = ' . $IDViagem;
        $db->execute($StQuery);
        $ArResult = $db->fetchAll();
        foreach($ArResult as $Result)
            $Motoristas[] = self::CreateMotorista ($Result);
        return $Motoristas;
    }
}

?>
